import redis
r=redis.Redis(host='localhost',port=6379,db=6)

# 测试连接
try:
    r.ping()
    print("成功连接到 Redis")
except redis.ConnectionError:
    print("无法连接到 Redis")



class MyRedis:
    # 初始化函数，将redis赋值给self.redis
    def __init__(self):
        self.redis=r
    # 设置验证码函数，将phone、time、code作为参数传入，返回redis.setex(phone,time,code)
    def set_code(self,phone,time,code):
        return self.redis.setex(phone,time,code)

    # 获取验证码函数，将phone作为参数传入，返回redis.get(phone)
    def get_code(self,phone):
        value= self.redis.get(phone)
        if value is not None:
            return value.decode('utf-8')
        else:
            return None

    def setnx_code(self,key,num):
        return self.redis.setnx(key,num)


    #存入图片验证码
    def set_captcha_text(self,captcha_text,time):
        return self.redis.setex(captcha_text,time,captcha_text)

    # 获取图片验证码函数，将captcha_text作为参数传入，返回redis.get(captcha_text)
    def get_captcha_text(self,captcha_text):
        value= self.redis.get(captcha_text)
        if value is not None:
            return value.decode('utf-8')
        else:
            return None


    def list_push(self,key,value):
        # 将value插入到key对应的列表的头部
        return self.redis.lpush(key,value)

# 定义一个函数，用于从redis中弹出指定key的值
    def list_pop(self,key):
        # 从redis中弹出指定key的值
        return self.redis.lpop(key)
    def list_len(self,key):
        # 获取redis中key对应的列表的长度
        return self.redis.llen(key)
    # 定义一个函数，用于获取Redis列表中指定范围内的元素
    def list_lrange(self,key,start,end):
        # 调用Redis的lrange方法，获取列表中指定范围内的元素
        return self.redis.lrange(key,start,end)
    def r_delete(self,key):
        return self.redis.delete(key)


    # 设置存储weather
    def set_weather(self, userid,time,response):
        return self.redis.setex(userid,time,response)

    # 获取weather
    def get_weather(self, userid):
        value = self.redis.get(userid)
        if value is not None:
            return value
        else:
            return None
r=MyRedis()